<?php
namespace app\common\enum;

class Base {
    protected static $options = [];
    protected static $codeOptions = [];

	// 魔术方法，当调用对象不存在的方法时会触发
    public function __call($method, $arguments) {
        // 检查类中是否存在该静态方法
        if (method_exists($this, $method)) {
            // 调用类的静态方法
            return call_user_func_array([__CLASS__, $method], $arguments);
        }
        // 如果静态方法也不存在，抛出异常或进行其他处理
        throw new \Exception("Method $method does not exist.");
    }

    public static function get_options() {
        return static::$options;
    }

    public static function get_show_options() {
        $options = static::get_options();
        foreach($options as $k => $v) {
            if($k < 0) {
                unset($options[$k]);
            }
        }
        return $options;
    }

    public static function code2key($code) {
        if(!isset(static::$codeOptions[$code])) {
            return false;
        }
        return static::$codeOptions[$code];
    }

    public static function showText($key) {
        return static::$options[$key];
    }
}